<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>call apply arguments</title>
    <script>
        /*
                      改变this指向
        call（）和apply（）
         -这两个方法都是函数对象的方法，需要通过函数对象来调用
         -当对函数调用call（）和apply（）都会调用函数执行
         -在调用call和apply（）第一个参数将会成为this(即：指定this)
          -call()方法可以将实参在对象之后依次传递      经常用作继承
          eg:call(object,value1,value2)
          -apply()方法需要将实参封装到一个数组里统一传递
         bind()
           不会调用函数，但是能改变函数内部的this
           返回的是改变this之后产生的新函数
         */
        /*
        浏览器每次都会传递两个隐含参数
        1.函数的上下文对象 this
        2.封装实参的对象 arguments  类数组对象
            它可以通过索引来操作数据，也可以获取长度
            在调用函数时，我们所传递的 实参 都会在argument中保存
            arguments.length可以用来获取实参的长度
            即使不定义形参，也可以通过argument来使用实参     argument[0]表示第一个实参
            它里边有一个属性叫做 callee.
               这个属性对应的一个函数对象，就是当前执行的函数对象
         */
    </script>
</head>
<body>

</body>
</html>